// axios ajax 配置文件
import store from "@/store/index"
import {AxiosRequestConfig} from "axios"
import { ElMessage } from "element-plus"

// nprogress 配置
export const nprogressConfig:any = {
  showSpinner: false
}

// axios 的默认配置
export const defaultConfig:AxiosRequestConfig = {
  timeout:30000, // 请求超时时间
}

// 添加验证请求头配置
export const authorization = {
  isAdd:(config:AxiosRequestConfig) => true, // 是否添加下面的 header 数据，返回 boolean 值
  header:(config:AxiosRequestConfig) => ({
    'X-Authorization':`Bearer ${store.getters.token}`
  })
}

// 返回值处理配置
export const responseConfig:any = {
  statusKey:'status',
  dataKey:'result',
  messageKey:'msg',
  errorMsgKey:'msg',
  statusWhiteList:[], // 状态码 白名单
  returnData(data:any){ return data },
  return401(){
    // console.log('...................')
    store.dispatch('logout');
  }, // 返回 401 状态码时的处理规则
}

// 错误相关配置
export const errorConfig:any = {
  // 请求发生错误的时候处理方法
  handle(data:any,resp:any,emsg:string,code:number){
    ElMessage({message:emsg,type:'error'})
  },
}


// api url 常用前缀
export const URI:any = {
  system:'/iot-api/'
}